package model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;

@Entity
public class Usuario implements Serializable {

    private static final long serialVersionUID = 1L;

    //==========================================================================
    //ATRIBUTOS
    //==========================================================================
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    private boolean ativo;
    @Column(nullable = false)
    private String nome;
    @Column(nullable = false)
    private String user;
    @Column(nullable = false)
    private String senha;
    @Column(nullable = true)
    private String CPF;
    @Column(nullable = true)
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dtCadastro;
    @Column(nullable = true)
    private Double desconto;
    
    @Column(nullable = false)
    private boolean acessoCadastro;
    @Column(nullable = false)
    private boolean acessoManutencao;
    @Column(nullable = false)
    private boolean acessoFinanceiro;
    @Column(nullable = false)
    private boolean cadClie;
    @Column(nullable = false)
    private boolean cadProd;
    @Column(nullable = false)
    private boolean cadForn;
    @Column(nullable = false)
    private boolean cadCate;
    @Column(nullable = false)
    private boolean cadGrup;
    @Column(nullable = false)
    private boolean manUsua;
    
    @Column(nullable = false)
    private boolean gerente;
    
    @OneToMany(cascade = CascadeType.ALL, mappedBy="usuario")
    private List<Pedido> pedidos;
    
    //==========================================================================
    //CHAVE ESTRANGEIRA
    //==========================================================================
    //==========================================================================
    //GET SET
    //==========================================================================
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getCPF() {
        return CPF;
    }

    public void setCPF(String CPF) {
        this.CPF = CPF;
    }

    public Date getDtCadastro() {
        return dtCadastro;
    }

    public void setDtCadastro(Date dtCadastro) {
        this.dtCadastro = dtCadastro;
    }

    public boolean isAcessoCadastro() {
        return acessoCadastro;
    }

    public void setAcessoCadastro(boolean acessoCadastro) {
        this.acessoCadastro = acessoCadastro;
    }

    public boolean isAcessoManutencao() {
        return acessoManutencao;
    }

    public void setAcessoManutencao(boolean acessoManutencao) {
        this.acessoManutencao = acessoManutencao;
    }

    public boolean isAcessoFinanceiro() {
        return acessoFinanceiro;
    }

    public void setAcessoFinanceiro(boolean acessoFinanceiro) {
        this.acessoFinanceiro = acessoFinanceiro;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public boolean isAtivo() {
        return ativo;
    }

    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }

    public Double getDesconto() {
        return desconto;
    }

    public void setDesconto(Double desconto) {
        this.desconto = desconto;
    }

    public List<Pedido> getPedidos() {
        return pedidos;
    }

    public void setPedidos(List<Pedido> pedidos) {
        this.pedidos = pedidos;
    }

    public boolean isCadClie() {
        return cadClie;
    }

    public void setCadClie(boolean cadClie) {
        this.cadClie = cadClie;
    }

    public boolean isCadProd() {
        return cadProd;
    }

    public void setCadProd(boolean cadProd) {
        this.cadProd = cadProd;
    }

    public boolean isCadForn() {
        return cadForn;
    }

    public void setCadForn(boolean cadForn) {
        this.cadForn = cadForn;
    }

    public boolean isCadCate() {
        return cadCate;
    }

    public void setCadCate(boolean cadCate) {
        this.cadCate = cadCate;
    }

    public boolean isCadGrup() {
        return cadGrup;
    }

    public void setCadGrup(boolean cadGrup) {
        this.cadGrup = cadGrup;
    }

    public boolean isManUsua() {
        return manUsua;
    }

    public void setManUsua(boolean manUsua) {
        this.manUsua = manUsua;
    }

    public boolean isGerente() {
        return gerente;
    }

    public void setGerente(boolean gerente) {
        this.gerente = gerente;
    }

}//CLASS
